#include "udpServer.hpp"

void Usage(const char* string)
{
    cout << "\n\rUsage: " << string << " port(1024+)\n\n";  
}

string stringHandler(const string& s) 
{
    // 将所有的字符变成大写
    string ret;
    for(auto& e : s) {
        ret += toupper(e);
    }
    return ret;
}

// 执行命令
string ExCmd(const string& s) 
{
    FILE* fp = popen(s.c_str(), "r");
    string res(2*BUFFERSIZE, 0);
    while(true) {
        string buffer(BUFFERSIZE, 0);
        char* p = fgets((char*)buffer.c_str(), buffer.size(), fp);
        if(p != nullptr)  res += buffer;
        else break;
    }
    return res; 
}

int main(int argc, char* argv[])
{
    if(argc != 2) {
        Usage(argv[0]);
    } else {
        uint16_t port = stoi(argv[1]);
        //  使用智能指针管理资源
        unique_ptr<UdpServer> svr(new UdpServer(port));
        svr->init();
        svr->run(stringHandler);
    }

    return 0;
}